The electronic musical instrument art has recently turned to digital generation of audio waveforms, whereas oscillators and clocks had been used as waveform sources in the past. An early digital waveform generation technique involves storage of digital instructions in a read-only memory (ROM), each instruction numerically representing the amplitude of the desired waveform at one of several sample points. The amplitude instructions are read out of the memory in sequence, and converted into a series of voltage amplitudes by a digital-to-analog converter, thus producing an analog output waveform of the desired shape. In order to read the amplitude instructions out of the ROM in sequence, it is necessary to generate an appropriate series of memory addresses. Some simple prior art systems use an address counter driven by a clock for addressing the ROM. See, for example, U.S. Pat. No. 3,763,364 of Ralph Deutsch et al.
A somewhat more sophisticated musical waveform generation system is seen in Deutch's U.S. Pat. No. 3,809,786. There the addressing of a sine function table memory is done under the control of a different kind of address generator, one which produces a sequence of non-consecutive memory addresses which increase in numerical value at a rate proportional to the musical scale value of the note to be sounded. It does this by repetitively adding a number which is proportional to that musical scale value.
A further level of sophistication in the prior art is exemplified by the musical waveform generation system in U.S. Pat. No. 4,119,005 of Michio Kondo et al. There again an ascending series of numbers is generated by repetitively adding the musical scale value of the note to be sounded. But instead of treating this ascending series of numbers as a set of memory addresses for table look-up purposes, Kondo et al treat it as a series of waveform amplitude instructions which can be utilized in the digital-to-analog converter to produce the waveform directly. The table look-up step is eliminated.
A variety of waveforms can be produced by this method. The ascending series of amplitude instructions inherently represents a rising stair-step, which becomes smoothed by the D/A converter to form a rising ramp analog waveform. By periodically terminating and restarting such a ramp, Kondo et al can also produce a repetitive sawtooth waveform. Or by periodically reversing the sign of the slope of the ramp, they can produce a triangular waveform, the kind with which the present invention is concerned. The most significant bit of the rising number series is used by Kondo et al as a trigger to produce the slope reversal.
The triangle waveform of Kondo et al is symmetrical; i.e. the leading and trailing edges thereof are mirror images of each other. Under certain circumstances, it is musically desirable for the triangular waveform to be asymmetrical, and particularly for the degree of asymmetry to be controlled. U.S. Pat. No. 4,103,582 of Masanobu Chibana discloses a musical waveform generation system of the same general type as Deutsch's, with the addition of a "frequency shifting device" which imparts an additive correction to the calculated ascending series of amplitudes, thus altering its rate of numerical ascent. But Chibana does not show how this concept can be used to achieve triangular asymmetry.
Nor does Chibana appreciate that an additive correction might also be used to introduce a small differential between two rising numerical sequences of nominally equal, or octavely related, rise rate; resulting in a small frequency disparity which produces a chorus effect.
The table look-up procedure used by Deutsch, and by Chibana as well, may be regarded as a technique for converting one waveform to another. The procedure starts with a rising staircase number sequence (which may be regarded as a ramp voltage expressed in digital form), and uses that sequence as a series of addresses for looking up some other waveform (a sinusoid) in a memory table. By reversing the slope periodically, so that the staircase sequence rises and falls alternately, the waveform memory can be scanned bi-directionally so as to reduce the memory capacity requirement by half, provided the desired output waveform is characterized by half-cycle symmetry. It is even possible to produce a four-fold reduction in memory capacity requirements, if quarter-cycle waveform symmetry can be utilized.
Of course, bi-directional memory addressing is not in itself new, as shown by Deutsch's U.S. Pat. No. 3,763,364. But in that type of system the memory addresses are merely numerically consecutive counter states, whether increasing (counting up) or decreasing (counting down). The mere use of consecutive counter states for memory addressing affords no opportunity to chose the rate of rise or fall of the resulting series of memory addresses.
The Deutsch U.S. Pat. No. 3,809,786 demonstrates the use of time-division multiplexing techniques to permit a numerical staircase waveform generator to be shared between two or more simultaneously played organ footages.